;Tests de l'evaluateur

(load "evaluateur-li.lisp")

;Test factorielle
;(meval '(defun test-fact (n)
;                  (if (= n 0)
;                       1
;                    (* n (fact (- n 1))))))
;(print (meval '(test-fact 5)))


;Test de compilation du compilateur
(print (meval '(defun tmake-stat-env (args pos)
		 (if (null args)
		     ()
		   (if (atom args)
					; On fait une liste simple
		       (cons args pos)
					; On construit la liste petit a petit
		     (cons (tmake-stat-env (car args) pos) (tmake-stat-env (cdr args) (+ 1 pos))))))
	      ))

(print (meval '(tmake-stat-env '(a b) 0)))

; Test de fibo
(meval '(defun test-fibo (n)
  (if (< n 2)
      1
    (+ (test-fibo (- n 1))
       (test-fibo (- n 2))))))
(print (meval '(test-fibo 12)))
